<?php

if (!function_exists('isOfficeFile')) {
    /**
     * Undocumented function
     *
     * @author wangqinghui
     * @DateTime 2024-09-21 17:29:39
     * @param string $filePath
     * @return boolean
     */
    function isOfficeFile(string $filePath = ''):  bool
    {
        // 定义Office文件扩展名列表
        $officeExtensions = [
            'doc', 'docx', 'dot', 'dotx', 'docm', 'dotm', // Word
            'xls', 'xlsx', 'xlsm', 'xlsb', 'xlt', 'xltm', 'xlam', 'xla', 'xlm', // Excel
            'ppt', 'pptx', 'pot', 'potx', 'ppsx', 'ppsm', 'pptm', 'potm', // PowerPoint
            'odt', 'ods', 'odp', // OpenDocument Format
        ];

        // 获取文件扩展名
        $extension = pathinfo($filePath, PATHINFO_EXTENSION);

        // 检查扩展名是否在Office扩展名列表中
        return in_array($extension, $officeExtensions, true);
    }
}

if (!function_exists('getconfig')) {
    /**
     * 获取配置
     *
     * @param string $account_id 公司id
     * @param string $groupType 配置类型
     * @param string $group 配置分组编码
     * @param string $code 配置分组编码
     * @return array|string
     *@author shirukun
     * @DateTime 2024-11-21
     */
    function getconfig($account_id, $groupType, $group = '', $code = ''):  array
    {
        // 获取具体配置值
        if(!empty($code) && !empty($group)){
            return app\common\model\admin\service_config\ServiceConfigData::where([
                'account_id' => $account_id,
                'type' => $groupType,
                'group' => $group,
                'code' => $code,
            ])->find('value');
        }

        // 获取同组配置值列表
        if(!empty($group)){
            return app\common\model\admin\service_config\ServiceConfigData::where([
                'account_id' => $account_id,
                'type' => $groupType,
                'group' => $group,
            ])->column('value','code');
        }

        // 获取同类型配置组列表
        return app\common\model\admin\service_config\ServiceConfigTabAccount::where([
            'account_id' => $account_id,
            'type' => $groupType,
            'status' => 1
        ])->field('id,type,alias_name,note')->order('sort desc')->select()->toArray();

    }
}